package com.cssiot.scala.basic


/*泛型
泛型类
class Pair[T,S](val first:T,val second:S)
泛型方法
def computer[T](list : List[T])= ...

---case class(多用在模式匹配中)
构造器中的每一个类型都为val，不建议用var
不用new就可以直接生产对象（为什么？apply方法）
-----------------------------
高阶函数
匿名函数 val double = (x: Int)=> 2 * x
函数作为参数
参数类型推断
常用高阶函数
    map、filter、reduce等等
----------------------------
* 
* */
class Basic6{
  
}

class A{
  
  
}

class RichA(a:A){
  def rich{
    println("rich...")
  }
  
}
object Basic6 extends App{
  
  implicit def a2Rich(a : A)=new RichA(a)
  
  val a=new A 
//  a.rich
 /*   implicit def a2Rich(a : A) = new RichA(a)
    val a = new A
    a.rich*/
  
  def testParam(implicit name : String){
      println(name)
    }
    implicit val name = "implicit!!!"
//     testParam
//    testParam("dd")
    import  com.cssiot.scala.basic.implicitClass.iClass
    println(1.add(1))
  
  
}

 
 